import akshare as ak
import pandas as pd
import plotly
from plotly.offline import iplot, init_notebook_mode
import plotly.express as px
from datetime import datetime
init_notebook_mode()
# from akshare to get data
df_all_history = ak.epidemic_history()
df_all_history
df_all = df_all_history
df_all['dates'] = df_all_history['date']
df_all['date']=pd.to_datetime(df_all['date'])
# oversea data
df_oversea = df_all.query("country!='中国'")
df_oversea.fillna(value="",inplace=True)
df_oversea
fig_oversea = px.line(df_oversea,x='dates',y='confirmed',line_group='country',color='country',\
color_discrete_sequence=px.colors.qualitative.D3,hover_name='country')
fig_oversea.show()
# from Feb 10, 2020
df_oversea_recent = df_oversea.set_index('date')
df_oversea_recent = df_oversea_recent['2020-02-10':]
df_oversea_recent
df_oversea_recent.to_excel('epidemic_oversea_recent_filled.xlsx')
df_oversea_supp = pd.read_excel('epidemic_supp.xlsx')
df_oversea_supp['dates'] = df_oversea_supp['date'].apply(lambda x:x.strftime('%Y-%m-%d'))
df_oversea_supp.set_index('date', inplace = True)
df_oversea_supp.fillna(value = "", inplace = True)
print(df_oversea_supp.info())
df_oversea_supp
# combine two dataFrames
df_oversea_recent_new = df_oversea_recent.append(df_oversea_supp)
df_oversea_recent_new.sort_index(inplace = True)
df_oversea_recent_new
fig_oversea_recent = px.scatter(df_oversea_recent_new,x='dead',y='confirmed',size='confirmed',\
text='country',color='country',color_discrete_sequence=px.colors.qualitative.Light24,\
animation_frame='dates',animation_group='country',hover_name='country',\
range_x=[-10,260],range_y=[0,8000],size_max=50,template='plotly_white')
fig_oversea_recent.show()